<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  let hd = {
    user: 'wzy',
    get: function () {
      return function () {
        return this.user;
      }
    }
  }

  let a = hd.get();
  console.log(a())
  //  为什么回事undefined？ 按理说闭包是可以访问到外部的作用域，外部个get方法就是指向了hd对象，那为什么在这里是
  // undefined呢？，因为this是特殊的，this指向的就是当前调用函数的对象，a() = window.a()


  //   优雅的解决方案： 使用箭头函数
  let hd2 = {
    user: 'wzy',
    get: function () {
      return () => {
        return this.user;
      }
    }
  }
  let newVar = hd2.get();
  console.log(newVar())

</script>
</body>
</html>